Hi Jason, Thank you. I wasn't able to post my organisation Units metadata because of the following error.
"{\"httpStatus\":\"Internal Server Error\",\"httpStatusCode\":500,\"status\":\"ERROR\",\"message\":\"object references an unsaved transient instance - save the transient instance before flushing: org.hisp.dhis.organisationunit.OrganisationUnit\"}" I wish I knew how to solve that through the API. However, I imported the organisation units using the csv file import. I followed along your guide and I was able to post all other metadata and data values - Thank you. On Thu, Feb 15, 2018 at 3:33 PM, 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 > 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 >> > -- -------------------------------------------------------------------------------- Isaiah Nyabuto +254 729 572 616 Bsc. Health Records Management & Informatics, JKUAT.
_______________________________________________ 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