2017年9月30日土曜日

Composition 2017/9/30



// Compositionの更新のエラーを確認するためだけのプログラム
// 00_login.htmlに関数呼び出しボタンあり
function updateCompositionSample(){
    globalComposition = new Composition();
    globalComposition.id = '225207';
    globalComposition.status = "preliminary";
    globalComposition.date = new Date();
    globalComposition.type = new CodeableConcept(
        new Coding('http://master2016kumw1.blogspot.jp/','V0.1','MHR'),
        '母子健康手帳'
    );
    globalComposition.section = [];
    globalComposition.section.push(new Composition_Section('妊婦の健康状態等'));
    globalComposition.section.push(new Composition_Section('妊婦の職業と環境'));
    globalComposition.section.push(new Composition_Section('妊婦自身の記録'));
    globalComposition.section.push(new Composition_Section('妊娠中の経過'));
    globalComposition.section.push(new Composition_Section('検査の記録'));
    globalComposition.section.push(new Composition_Section('母親学級受講記録'));
    globalComposition.section.push(new Composition_Section('妊娠中と産後の歯の状態'));
    globalComposition.section.push(new Composition_Section('出産の状態'));
    globalComposition.section.push(new Composition_Section('出産後の母体の経過'));
    globalComposition.section.push(new Composition_Section('マタニティダイアリ'));
    globalComposition.section.push(new Composition_Section('母親自身の記録'));
    
    alert(JSON.stringify(globalComposition,null,' '));
    var url = 'http://fhirtest.uhn.ca/baseDstu2/Composition/225207?_format=json&_pretty=true';
    alert(url);
    alert('これから書き込もうとしているcomposition' + JSON.stringify(globalComposition));

    $.ajax({
        url: url,
        type: 'PUT',
        contentType: 'application/json',
        data: JSON.stringify(globalComposition),
        async: false        
    })
    .done(function(response) {
        alert('Compositionの更新に成功' + JSON.stringify(response,null,' '));
    })
    .fail(function(XMLHttpRequest, textStatus, errorThrown) {
        alert('Compositionの更新に失敗' + JSON.stringify(XMLHttpRequest,null,' '));
    });
}


//1.端末に保存されたcompositionIdのJSONを取得したものをJSON.parseしてcompositionId変数へ
//2.compositionIdでサーバから読み込み
//3.取得したJSONを書き換え
//4.Composition更新リクエスト
function setChildToComposition(patientId){
    var item = localStorage.getItem("compositionId");
    var obj = JSON.parse(item);
    alert('端末に保存されているcompositionIdは' + obj.compositionId +'です');
    
    var url = 'http://fhirtest.uhn.ca/baseDstu3/Composition/'+ obj.compositionId;
    alert('GETリクエスト(読み込み)を送信するURL=' + url);
    $.ajax({
        url: url,
        type: 'GET',
        data: {
            _pretty: true,
        },
        async: false        
    })
    .done(function(compositionObj) {
        alert('Compositionの読み込みに成功しました');
        alert('JSON.stringifyしたresponse(responseを代入したcompositionObjを表示⇒)' + JSON.stringify(compositionObj));
        compositionObj.subject = [
            {
                reference : 'Patient/' + patientId,
                display :  '児'
            }
        ]; 
        alert('編集後のcompositionObj' + JSON.stringify(compositionObj));
        updateComposition(obj.compositionId,compositionObj);
    })
    .fail(function(XMLHttpRequest, textStatus, errorThrown) {
        alert('Compositionの読み込みに失敗しました' + JSON.stringify(XMLHttpRequest,null,' '));
    })
}

function updateComposition(compositionId,compositionObj){
    var url = 'http://fhirtest.uhn.ca/baseDstu2/Composition/' + compositionId + '?_format=json&_pretty=true';
    alert(url);
    alert('これから書き込もうとしているcompositionObj' + JSON.stringify(compositionObj));

    $.ajax({
        url: url,
        type: 'PUT',
        contentType: 'application/json',
        data: JSON.stringify(compositionObj),
        async: false        
    })
    .done(function(response) {
        alert('編集したCompositionの更新に成功' + JSON.stringify(response,null,' '));
    })
    .fail(function(XMLHttpRequest, textStatus, errorThrown) {
        alert('編集したCompositionの更新に失敗' + JSON.stringify(XMLHttpRequest,null,' '));
    });
}

0 件のコメント:

コメントを投稿