2016-06-07 36 views
0

我正在使用MedicationOrder資源在HAPI - FHIR DSTU2 HL7中編寫用於生成POST請求的java代碼。我遇到了幾個麻煩。構建MEdicationOrder資源的POST請求消息HAPI - FHIR

  1. 設置所包含資源的參考值。
  2. 包含的資源不存在於生成的XML消息中。
  3. 操作結果爲HTTP/1.1 500內部服務器錯誤消息期待外部元素稱爲'feed',找到:MedicationOrder

任何人都可以熟悉MedicationOrder資源請幫助我嗎?下面

是java代碼

public int sendMessage(MedicationOrder medicationOrder) throws ClientProtocolException, IOException 
{ 
    FhirContext ctx = FhirContext.forDstu2Hl7Org(); 
    IGenericClient client = ctx.newRestfulGenericClient("http://fhirtest.uhn.ca/baseDstu2");  
    HttpPost httpPost = new HttpPost("http://fhirtest.uhn.ca/baseDstu2"); 

    String message = ctx.newXmlParser().setPrettyPrint(true).encodeResourceToString(medicationOrder); 
    httpPost.setEntity((HttpEntity) new StringEntity(message, ContentType.create(Constants.CT_FHIR_XML, "UTF-8"))); 

    org.apache.http.HttpResponse response = client.getHttpClient().execute(httpPost); 
    return response.getStatusLine().getStatusCode(); 
} 
+0

目前尚不清楚你的要求。請包括您說您正在編寫的Java代碼 - 包含生成這些錯誤的Java代碼會更有幫助。請查看一些關於[如何提出一個好問題]的有用提示(http://stackoverflow.com/help/how-to-ask) - 詢問一個好問題可以提高獲得答案的機會。 但是,在發佈您的問題之前,您先搜索並做一些調查也同樣重要。還包括您嘗試過的內容,並指出您遇到的問題。 – ishmaelMakitla

回答

0

看起來您正在將HAPI的客戶端與Apache HTTP客戶端層(HAPI的客戶端內部,但不需要直接交互)混合在一起, 。

而不是創建HttpPost對象,只需使用高致病性禽流感的客戶端來進行創建:

MethodOutcome outcome = client.create() 
    .resource(medicationOrder) 
    .prettyPrint() 
    .encodedJson() 
    .execute(); 
+0

嗨詹姆斯阿格紐,它工作。非常感謝..!!! –

+0

我設法克服了這裏提到的所有問題。但是現在,生成的消息中存在重複的「包含」資源。例如,有2個位置條目和3個組織條目。你有什麼主意嗎? –

0

如果接口抱怨「飼料」,那麼它聽起來就像你正在使用的DSTU 1版高致病性禽流感,而不是DSTU2。 (Feed已更改爲DSTU 2中的Bundle。)

+0

我已經刪除了'hapi-fhir-structures-dstu2'版本1.4的依賴項,現在它正在抱怨'Bundle'。 –