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

Reply via email to