Everything done from the user interface is done through the API, so yes. The API also gives you more flexibility to filter etc. The manual describes this.
https://docs.dhis2.org/master/en/developer/html/webapi_metadata_crud.html https://docs.dhis2.org/master/en/developer/html/webapi_metadata_export.html https://docs.dhis2.org/master/en/developer/html/webapi_metadata_synchronization.html On Thu, Feb 15, 2018 at 8:56 AM, Isaiah Nyabuto <isaiahnyab...@gmail.com> wrote: > > Hi Knut, > > Yes. And is it possible to do that APIs? > > Thank you. > > > ========================== > Isaiah Nyabuto > +254729572616 <+254%20729%20572616> > Bsc. Health Records Management and Informatics > > On Feb 15, 2018 16:29, "Knut Staring" <knu...@gmail.com> wrote: > >> Hi Isaiah, >> >> When you say "extract", you mean you want to take metadata from one >> instance of DHIS2 and import to another one? That can be done through the >> user interface as described in the user manual: >> https://docs.dhis2.org/master/en/user/html/import_export.html >> https://play.dhis2.org/2.28/dhis-web-importexport/index.action >> >> You can also load metadata from CSV: >> https://docs.dhis2.org/master/en/developer/html/webapi_csv_m >> etadata_import.html >> >> On Thu, Feb 15, 2018 at 7:33 AM, Isaiah Nyabuto <isaiahnyab...@gmail.com> >> wrote: >> >>> Hi Jason, >>> >>> Thank you. I am going to look into that keenly. >>> And If I may ask, is there a way I can extract dhis2 metadata that can >>> be imported directly or with minimal transformations? >>> >>> This will be helpful. Thank you. >>> >>> ========================== >>> Isaiah Nyabuto >>> +254729572616 <+254%20729%20572616> >>> Bsc. Health Records Management and Informatics >>> >>> On Feb 15, 2018 15:16, "Jason Pickering" <jason.p.picker...@gmail.com> >>> wrote: >>> >>>> Hi Isaiah, >>>> >>>> You have >>>> >>>> >>>> "parent":"vpiZlB5cdK7" >>>> >>>> >>>> It should be >>>> >>>> parent":{"id":"vpiZlB5cdK7"}} >>>> >>>> Be sure your JSON structure is exactly as it should be, otherwise, you >>>> will get those kinds of errors. Study the example here >>>> <https://raw.githubusercontent.com/jason-p-pickering/dhis2-data-munging/master/ous/ous.json> >>>> . >>>> >>>> Regards, >>>> Jason >>>> >>>> >>>> >>>> On Thu, Feb 15, 2018 at 1:07 PM, Isaiah Nyabuto < >>>> isaiahnyab...@gmail.com> wrote: >>>> >>>>> Thank you for the tip. It still doesn't work. >>>>> what does this error mean? >>>>> >>>>> httr::content(r, "text") >>>>> >>>>> [1] "{\"httpStatus\":\"Internal Server Error\",\"httpStatusCode\":500 >>>>> ,\"status\":\"ERROR\",\"message\":\"Can not instantiate value of type >>>>> [simple type, class org.hisp.dhis.organisationunit.OrganisationUnit] >>>>> from String value ('It7fWcKbcZX'); no single-String constructor/factory >>>>> method\\n at [Source: org.apache.catalina.connector. >>>>> CoyoteInputStream@1efec811; line: 1, column: 73] (through reference >>>>> chain: org.hisp.dhis.organisationunit.OrganisationUnit[\\\"parent\\\ >>>>> "])\"}" >>>>> >>>>> Anyone? >>>>> >>>>> Thank you. >>>>> ========================== >>>>> Isaiah Nyabuto >>>>> +254729572616 <+254%20729%20572616> >>>>> Bsc. Health Records Management and Informatics >>>>> >>>>> On Feb 15, 2018 13:14, "Jason Pickering" <jason.p.picker...@gmail.com> >>>>> wrote: >>>>> >>>>> All of your fields must have exactly the correct names: >>>>> >>>>> shortname -> shortName >>>>> featuretype-> featureType >>>>> >>>>> Keep hacking at it! You will get there! >>>>> >>>>> Regards, >>>>> Jason >>>>> >>>>> >>>>> On Thu, Feb 15, 2018 at 11:08 AM, Isaiah Nyabuto < >>>>> isaiahnyab...@gmail.com> wrote: >>>>> >>>>>> Hi Jason, >>>>>> >>>>>> Here is some bit of my post data. >>>>>> >>>>>> {"organisationUnits":[{"name":"Wikithuki >>>>>> Dispensary","uid":"Bc371uxfYD5","code":"16925","parent":"vpiZlB5cdK7","shortname":"Wikithuki >>>>>> >>>>>> Dispensary","description":"","comment":"","featuretype":"POINT","coordinates":"[37.95263,-0.77819]","url":""},{"name":"Gemifa >>>>>> Medical >>>>>> Clinic","uid":"Z7Lf1n3Fcpi","code":"22907","parent":"mEZBjj4fLBT","shortname":"Gemifa","description":"Clinic","comment":"","featuretype":"NONE","coordinates":"[34.391914,0.059575]","url":""},{"name":"Olympus >>>>>> Medical >>>>>> Clinic","uid":"NAbQdHuaJFK","code":"22906","parent":"PeEcMfBchbr","shortname":"Olympus","description":"Clinic","comment":"","featuretype":"NONE","coordinates":"[34.3994,0.059575]","url":""},{"name":"Masaba >>>>>> Community Health >>>>>> Unit","uid":"tYwHeLSnHyb","code":"600616","parent":"QR2K4k8VKF1","shortname":"Masaba >>>>>> CHU","description":"Community >>>>>> Unit","comment":"","featuretype":"NONE","coordinates":"[34.46411,0.19358]","url":""},{"name":"Gatunga >>>>>> Health Centre","uid":"cmay4WXRmhA","code":"12034","parent": >>>>>> >>>>>> >>>>>> After changing the "uid" to "id", still it doesn't work. >>>>>> >>>>>> Thank you >>>>>> >>>>>> >>>>>> On Thu, Feb 15, 2018 at 12:14 PM, Jason Pickering < >>>>>> jason.p.picker...@gmail.com> wrote: >>>>>> >>>>>>> Hi Isaiah, >>>>>>> >>>>>>> Post a bit of your JSON here from >>>>>>> toJSON(list(organisationUnits=new_org), >>>>>>> auto_unbox = TRUE) >>>>>>> >>>>>>> One other problem I noticed as well is this >>>>>>> >>>>>>> [{"name":"Wikithuki Dispensary","uid":"Bc371uxfYD5" >>>>>>> >>>>>>> >>>>>>> It should be >>>>>>> >>>>>>> [{"name":"Wikithuki Dispensary","id":"Bc371uxfYD5" >>>>>>> >>>>>>> >>>>>>> Regards, >>>>>>> Jason >>>>>>> >>>>>>> >>>>>>> On Thu, Feb 15, 2018 at 10:01 AM, Isaiah Nyabuto < >>>>>>> isaiahnyab...@gmail.com> wrote: >>>>>>> >>>>>>>> Hi Jason, >>>>>>>> >>>>>>>> I get an internal server error code: 500, after trying that. Here >>>>>>>> is the response; >>>>>>>> >>>>>>>> httr::content(r, "text")[1] "{\"httpStatus\":\"Internal Server >>>>>>>> Error\",\"httpStatusCode\":500,\"status\":\"ERROR\",\"message\":\"Can >>>>>>>> not instantiate value of type [simple type, class >>>>>>>> org.hisp.dhis.organisationunit.OrganisationUnit] from String value >>>>>>>> ('It7fWcKbcZX'); no single-String constructor/factory method\\n at >>>>>>>> [Source: org.apache.catalina.connector.CoyoteInputStream@1efec811; >>>>>>>> line: 1, column: 73] (through reference chain: >>>>>>>> org.hisp.dhis.organisationunit.OrganisationUnit[\\\"parent\\\"])\"}" >>>>>>>> >>>>>>>> >>>>>>>> Thank you. >>>>>>>> >>>>>>>> On Thu, Feb 15, 2018 at 10:36 AM, Jason Pickering < >>>>>>>> jason.p.picker...@gmail.com> wrote: >>>>>>>> >>>>>>>>> Hi Isiah, >>>>>>>>> >>>>>>>>> The reason for it not working (at least at first glance) is that >>>>>>>>> you are posing to the /api/metadata endpoint. Thus, you need to tell >>>>>>>>> the >>>>>>>>> server what you are trying to import. In this case, its organisation >>>>>>>>> units. >>>>>>>>> >>>>>>>>> I think changing this to >>>>>>>>> >>>>>>>>> r <- POST(url, authenticate(dest.user, dest.pass), >>>>>>>>> body = toJSON(list(organisationUnits=new_org), >>>>>>>>> auto_unbox = TRUE), >>>>>>>>> content_type_json()) >>>>>>>>> >>>>>>>>> should work. >>>>>>>>> >>>>>>>>> The example works because the file >>>>>>>>> <https://raw.githubusercontent.com/jason-p-pickering/dhis2-data-munging/master/ous/ous.json> >>>>>>>>> looks like this: >>>>>>>>> >>>>>>>>> >>>>>>>>> {"created":"2016-08-10","organisationUnits":[{"id":"u6yjgvIMzKn",... >>>>>>>>> >>>>>>>>> >>>>>>>>> Hope this helps and best regards, >>>>>>>>> >>>>>>>>> Jason >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Feb 15, 2018 at 6:34 AM, Isaiah Nyabuto < >>>>>>>>> isaiahnyab...@gmail.com> wrote: >>>>>>>>> >>>>>>>>>> >>>>>>>>>> Dear Jason and Dhis2 Community, >>>>>>>>>> >>>>>>>>>> I am following your guide on bootstrapping >>>>>>>>>> <https://github.com/jason-p-pickering/dhis2-data-munging/blob/master/bootstrap/bootstrap.Rmd> >>>>>>>>>> dhis2 with R while trying to import metadata using the API. >>>>>>>>>> >>>>>>>>>> I do not understand why my metadata is not imported. Here are my >>>>>>>>>> steps, any help will be appreciated. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> head(org) name uid code >>>>>>>>>> parent shortname >>>>>>>>>> 1 Wikithuki Dispensary Bc371uxfYD5 16925 vpiZlB5cdK7 >>>>>>>>>> Wikithuki Dispensary >>>>>>>>>> 2 Gemifa Medical Clinic Z7Lf1n3Fcpi 22907 mEZBjj4fLBT >>>>>>>>>> Gemifa >>>>>>>>>> 3 Olympus Medical Clinic NAbQdHuaJFK 22906 PeEcMfBchbr >>>>>>>>>> Olympus >>>>>>>>>> 4 Masaba Community Health Unit tYwHeLSnHyb 600616 QR2K4k8VKF1 >>>>>>>>>> Masaba CHU >>>>>>>>>> 5 Gatunga Health Centre cmay4WXRmhA 12034 IcAegRcGuV6 >>>>>>>>>> Gatunga Health Centre >>>>>>>>>> 6 Cfw Kimangaru Clinic E52UsoBxJVS 11966 vEAFtHnPDrX CFW >>>>>>>>>> Kimangaru Clinic >>>>>>>>>> description openingdate closedate comment featuretype >>>>>>>>>> coordinates url >>>>>>>>>> 1 NA NA POINT >>>>>>>>>> [37.95263,-0.77819] >>>>>>>>>> 2 Clinic NA NA NONE >>>>>>>>>> [34.391914,0.059575] >>>>>>>>>> 3 Clinic NA NA NONE >>>>>>>>>> [34.3994,0.059575] >>>>>>>>>> 4 Community Unit NA NA NONE >>>>>>>>>> [34.46411,0.19358] >>>>>>>>>> 5 NA NA POINT >>>>>>>>>> [37.9423,-0.29656] >>>>>>>>>> 6 NA NA POINT >>>>>>>>>> [37.53009,-0.54506] >>>>>>>>>> contactperson address email phonenumber >>>>>>>>>> 1 NA NA NA NA >>>>>>>>>> 2 NA NA NA NA >>>>>>>>>> 3 NA NA NA NA >>>>>>>>>> 4 NA NA NA NA >>>>>>>>>> 5 NA NA NA NA >>>>>>>>>> 6 NA NA NA NA >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> I followed the following steps to prepare my df for import. >>>>>>>>>> 1. Removed all the NAs and columns with entire NAs. >>>>>>>>>> >>>>>>>>>> head(new_org) name uid code >>>>>>>>>> parent shortname >>>>>>>>>> 1 Wikithuki Dispensary Bc371uxfYD5 16925 vpiZlB5cdK7 >>>>>>>>>> Wikithuki Dispensary >>>>>>>>>> 2 Gemifa Medical Clinic Z7Lf1n3Fcpi 22907 mEZBjj4fLBT >>>>>>>>>> Gemifa >>>>>>>>>> 3 Olympus Medical Clinic NAbQdHuaJFK 22906 PeEcMfBchbr >>>>>>>>>> Olympus >>>>>>>>>> 4 Masaba Community Health Unit tYwHeLSnHyb 600616 QR2K4k8VKF1 >>>>>>>>>> Masaba CHU >>>>>>>>>> 5 Gatunga Health Centre cmay4WXRmhA 12034 IcAegRcGuV6 >>>>>>>>>> Gatunga Health Centre >>>>>>>>>> 6 Cfw Kimangaru Clinic E52UsoBxJVS 11966 vEAFtHnPDrX CFW >>>>>>>>>> Kimangaru Clinic >>>>>>>>>> description comment featuretype coordinates url >>>>>>>>>> 1 POINT [37.95263,-0.77819] >>>>>>>>>> 2 Clinic NONE [34.391914,0.059575] >>>>>>>>>> 3 Clinic NONE [34.3994,0.059575] >>>>>>>>>> 4 Community Unit NONE [34.46411,0.19358] >>>>>>>>>> 5 POINT [37.9423,-0.29656] >>>>>>>>>> 6 POINT [37.53009,-0.54506] >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> 3. Then post the data as follows. >>>>>>>>>> >>>>>>>>>> dest.url <- "http://localhost/dhis/" >>>>>>>>>> url <- paste0(dest.url, "api/metadata?importStrategy=C >>>>>>>>>> REATE&atomicMode=NONE") >>>>>>>>>> r <- POST(url, authenticate(dest.user, dest.pass), >>>>>>>>>> body = toJSON(new_org, auto_unbox = TRUE), >>>>>>>>>> content_type_json()) >>>>>>>>>> assertthat::assert_that(r$status_code==200) >>>>>>>>>> >>>>>>>>>> 4. The body looks like. >>>>>>>>>> >>>>>>>>>> jsonlite::toJSON(me, auto_unbox = TRUE)[{"name":"Wikithuki >>>>>>>>>> Dispensary","uid":"Bc371uxfYD5","code":"16925","parent":"vpiZlB5cdK7","shortname":"Wikithuki >>>>>>>>>> >>>>>>>>>> Dispensary","description":"","comment":"","featuretype":"POINT","coordinates":"[37.95263,-0.77819]","url":""},{"name":"Gemifa >>>>>>>>>> Medical >>>>>>>>>> Clinic","uid":"Z7Lf1n3Fcpi","code":"22907","parent":"mEZBjj4fLBT","shortname":"Gemifa","description":"Clinic","comment":"","featuretype":"NONE","coordinates":"[34.391914,0.059575]","url":""},{"name":"Olympus >>>>>>>>>> Medical >>>>>>>>>> Clinic","uid":"NAbQdHuaJFK","code":"22906","parent":"PeEcMfBchbr","shortname":"Olympus","description":"Clinic","comment":"","featuretype":"NONE","coordinates":"[34.3994,0.059575]","url":""},{"name":"Masaba >>>>>>>>>> Community Health >>>>>>>>>> Unit","uid":"tYwHeLSnHyb","code":"600616","parent":"QR2K4k8VKF1","shortname":"Masaba >>>>>>>>>> CHU","description":"Community >>>>>>>>>> Unit","comment":"","featuretype":"NONE","coordinates":"[34.46411,0.19358]","url":""},{"name":"Gatunga >>>>>>>>>> Health >>>>>>>>>> Centre","uid":"cmay4WXRmhA","code":"12034","parent":"IcAegRcGuV6","shortname":"Gatunga >>>>>>>>>> Health >>>>>>>>>> Centre","description":"","comment":"","featuretype":"POINT","coordinates":"[37.9423,-0.29656]","url":""},{"name":"Cfw >>>>>>>>>> Kimangaru >>>>>>>>>> Clinic","uid":"E52UsoBxJVS","code":"11966","parent":"vEAFtHnPDrX","shortname":"CFW >>>>>>>>>> Kimangaru >>>>>>>>>> Clinic","description":"","comment":"","featuretype":"POINT","coordinates":"[37.53009,-0.54506]","url":""}] >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> What could be the problem there? I get status 200 and still it >>>>>>>>>> doesn't import. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thank you >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> ------------------------------------------------------------ >>>>>>>>>> -------------------- >>>>>>>>>> Isaiah Nyabuto >>>>>>>>>> +254 729 572 616 >>>>>>>>>> Bsc. Health Records Management & Informatics, JKUAT. >>>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Jason P. Pickering >>>>>>>>> email: jason.p.picker...@gmail.com >>>>>>>>> tel:+46764147049 <076-414%2070%2049> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> ------------------------------------------------------------ >>>>>>>> -------------------- >>>>>>>> Isaiah Nyabuto >>>>>>>> +254 729 572 616 >>>>>>>> Bsc. Health Records Management & Informatics, JKUAT. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Jason P. Pickering >>>>>>> email: jason.p.picker...@gmail.com >>>>>>> tel:+46764147049 <076-414%2070%2049> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> ------------------------------------------------------------ >>>>>> -------------------- >>>>>> Isaiah Nyabuto >>>>>> +254 729 572 616 >>>>>> Bsc. Health Records Management & Informatics, JKUAT. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Jason P. Pickering >>>>> email: jason.p.picker...@gmail.com >>>>> tel:+46764147049 <076-414%2070%2049> >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Jason P. Pickering >>>> email: jason.p.picker...@gmail.com >>>> tel:+46764147049 <+46%2076%20414%2070%2049> >>>> >>> >>> _______________________________________________ >>> Mailing list: https://launchpad.net/~dhis2-users >>> Post to : dhis2-users@lists.launchpad.net >>> Unsubscribe : https://launchpad.net/~dhis2-users >>> More help : https://help.launchpad.net/ListHelp >>> >>> >> >> >> -- >> Knut Staring >> >> Department of Information, Evidence and Research >> World Health Organization, Geneva, Switzerland >> Office: +41 22 791 3683 <+41%2022%20791%2036%2083> Mob1: +33 6 4434 2931 >> <+33%206%2044%2034%2029%2031> Mob2: +47 9188 0522 >> Skype: knutstar >> > -- Knut Staring Department of Information, Evidence and Research World Health Organization, Geneva, Switzerland Office: +41 22 791 3683 Mob1: +33 6 4434 2931 Mob2: +47 9188 0522 Skype: knutstar
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-users Post to : dhis2-users@lists.launchpad.net Unsubscribe : https://launchpad.net/~dhis2-users More help : https://help.launchpad.net/ListHelp