Advertisement
Guest User

Untitled

a guest
Oct 24th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 7.25 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="UTF-8">
  5.     <link rel="stylesheet" href="stylesheet.css" id="pagestyle" />
  6.     <title>Ulkoiset Potilastiedot</title>
  7.     <script src="./date.js"></script>
  8.     <script src="./moment.min.js"></script>
  9.     <script src="./jquery-3.1.0.min.js"></script>
  10.     <script type="text/javascript">
  11.  
  12.         //Global variables that contain patient content
  13.         var diagnostic_content = ""
  14.         var medicational_content = ""
  15.         var patient_content = ""
  16.         var risk_content = ""
  17.         var doctor_content = ""
  18.  
  19.         //Utility functions:
  20.         function init() {
  21.             var htunnus = getQueryVariable("hetu");
  22.             if (!htunnus)
  23.                 htunnus = "271046-667V";
  24.             $('#page_headline').html("Potilastiedot tunnukselle " + htunnus);
  25.             get_data(htunnus)
  26.         }
  27.        
  28.         function getQueryVariable(variable) {
  29.             var query = window.location.search.substring(1);
  30.             var vars = query.split("&");
  31.             for (var i = 0; i < vars.length; i++) {
  32.                var pair = vars[i].split("=");
  33.                if (pair[0] == variable) {
  34.                    return pair[1];
  35.                }
  36.            }
  37.            return (false);
  38.        }
  39.  
  40.        function parse_json_content(data) {
  41.            console.log(data)
  42.  
  43.            for(let i = 0; i < data.total; i++)
  44.            {                
  45.                let type = data.entry[i].resource.resourceType
  46.                console.log("Type of entry: " + type)
  47.                switch(type)
  48.                {
  49.                    case "Patient":
  50.                        let patient_name = data.entry[i].resource.name[0].text
  51.                        let phoneNumber = "undefined"
  52.                        let address = data.entry[i].resource.address[0].line[0]
  53.                        let postalCode = data.entry[i].resource.address[0].postalCode
  54.                        let city = data.entry[i].resource.address[0].city
  55.  
  56.                        patient_content += "<div class=\"patient_info\">Perustiedot: " + patient_name
  57.                         patient_content += ", " + address + ", " + postalCode + " " + city
  58.                         patient_content += " " + phoneNumber + "</div>"                    
  59.                     break;
  60.                     case "AllergyIntolerance":
  61.                         risk_content = "<div class=\"subinfo\">" + data.entry[i].resource.substance.coding[0].display.replace(/\s+/g, ' ') + "</div>"
  62.                     break;
  63.                     case "Condition":
  64.                         if(data.entry[i].resource.clinicalStatus == "Active")
  65.                         {
  66.                             let date_diagnosed = moment(data.entry[i].resource.onsetDateTime.split("+")[0])                            
  67.                             let condition = data.entry[i].resource.code.coding[0].display
  68.                             let diagnosed = date_diagnosed.format('DD.MM.YYYY')
  69.  
  70.                             diagnostic_content += "<div class=\"info\">" + condition + "</div>"
  71.                             diagnostic_content += "<div class=\"subinfo\">Diagnosoitu: " + diagnosed + "</div><br>"
  72.                         }
  73.                     break;
  74.                     case "MedicationOrder":
  75.                         let medication = data.entry[i].resource.medicationCodeableConcept.coding[0].display
  76.                         asdf = moment(data.entry[i].resource.dateWritten.split("+")[0])
  77.  
  78.                         let date_start = moment(data.entry[i].resource.dateWritten.split("+")[0])
  79.                         let date_written = date_start.format('DD.MM.YYYY')
  80.  
  81.                         let date_end = moment(data.entry[i].resource.dateEnded.split("+")[0])
  82.                         let date_ended = date_end.format('DD.MM.YYYY')
  83.                         let active = ""
  84.  
  85.                         if(date_end.diff(moment(), "days", true) > 0) {
  86.                             active = "Kyllä"
  87.                         } else {
  88.                             active = "Ei"
  89.                         }
  90.  
  91.                         medicational_content += "<div class=\"info\">" + medication + "</div>"
  92.                         medicational_content += "<div class=\"subinfo\">Määrätty: " + date_written + "</div>"
  93.                         medicational_content += "<div class=\"subinfo\">Päättyy: " + date_ended + "</div>"
  94.                         medicational_content += "<div class=\"subinfo\">Voimassa: " + active + "</div><br>"
  95.                     break;
  96.                     case "Practitioner":
  97.                         let doctor_name = data.entry[i].resource.name.text
  98.                         doctor_content = "<div class=\"doctor_info\">Vastaava lääkäri: " + doctor_name + "</div>"
  99.                     break;                    
  100.                     default:
  101.                     break;
  102.                 }
  103.             }
  104.  
  105.             if(diagnostic_content == "")
  106.             {
  107.                 diagnostic_content = "No active diagnoses present"
  108.             }
  109.  
  110.             diagnostic_content = "<div class=\"subtitle\">Diagnoosit</div><br>" + diagnostic_content
  111.             medicational_content = "<div class=\"subtitle\">Lääkitykset</div><br>" + medicational_content
  112.             risk_content = "<div class=\"subtitle\">Riskit</div><br>" + risk_content
  113.         }
  114.  
  115.         function get_data(id) {
  116.             $.when(
  117.                 // Get the Patient Data                
  118.                 $.ajax({
  119.                     type: "GET",
  120.                     url: "http://web.testlab.local:57773/csp/healthshare/hsaccess/fhir/Bundle/" + id,
  121.                     data: {
  122.                         CacheUserName: "intersystems",
  123.                         CachePassword: "Qwerty1!"
  124.                     },
  125.                     dataType: 'json',
  126.                     success: function(data) {
  127.                         console.log("Got a response!")
  128.                         parse_json_content(data);
  129.                     }
  130.                 })
  131.             ).then(function() {
  132.                 // All is ready now, so...
  133.                 console.log("All is ready. Lets populate the page!");
  134.                 $('#resultarea_for_patient').html(patient_content).hide().fadeIn(2000);
  135.  
  136.                 setTimeout(function() {
  137.                     $('#resultarea_for_doctor').hide().html(doctor_content).fadeIn(2000);
  138.                 }, 200);
  139.                 setTimeout(function() {
  140.                     $('#resultarea_for_diagnoses').hide().html(diagnostic_content).fadeIn(2000);
  141.                 }, 300);
  142.                 setTimeout(function() {
  143.                     $('#resultarea_for_medication').hide().html(medicational_content).fadeIn(2000);
  144.                 }, 400);
  145.                 setTimeout(function() {
  146.                     $('#resultarea_for_risks').hide().html(risk_content).fadeIn(2000);
  147.                 }, 600);            
  148.             });
  149.         }
  150.  
  151.         window.onload = init;
  152.     </script>
  153. </head>
  154.  
  155. <body>
  156.     <div class="headline" id="page_headline"></div>
  157.     <div id="resultarea_for_patient"></div>
  158.     <div id="resultarea_for_doctor"></div><hr>
  159.     <div id="resultarea_for_diagnoses"></div>
  160.     <div id="resultarea_for_medication"></div>
  161.     <div id="resultarea_for_risks"></div>
  162.     <hr>
  163. </body>
  164.  
  165. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement