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
_______________________________________________
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

Reply via email to