External Exam Download Resources Web Applications Games Recycle Bin

Careflight Data

careflight_data.py

#live API URL: https://digisoln.com/careflight/

careflight = {
  "hospitals": {
    #current patient numbers generated randomly, 25% hospital is full:
    "Cairns": {"capacity": 531, "current": -1, "grid_location": "H8"},
    "Townsville": {"capacity": 775, "current": -1, "grid_location": "I11"},
    "Rockhampton": {"capacity": 300, "current": -1, "grid_location": "M15"},
    "Mackay": {"capacity": 236, "current": -1, "grid_location": "L13"},
    "Brisbane": {"capacity": 1000, "current": -1, "grid_location": "O19"}
  },
  "map_url": "https://digisoln.com/assessments/queensland_hospitals_map.png",
  "triage_url": "https://www.qld.gov.au/health/services/emergency",
  "triage_ratings": {
    1: "immediately life threatening patients: critical injury or cardiac arrest",
    2: "imminently life threatening patients: critical illness, very severe pain, have serious chest pains, difficulty in breathing or severe fractures",
    3: "potentially life threatened patients: severe illness, bleeding heavily from cuts, have major fractures, dehydrated",
    4: "potentially serious patients: less severe symptoms or injuries, such as foreign body in the eye, sprained ankle, migraine or ear ache",
    5: "less urgent patients: minor illnesses or symptoms, rashes, minor aches and pains"
  },
  "helicopter_status_types": {
    "awaiting": "ready for dispatch",
    "responding": "enroute to a request",
    "returning": "carrying patients back to a hospital"
  },
  "helicopter_status": {
    "helicopter1": {
      "current_grid_location": "I11",
      "allocated_request": "",
      "target_grid_location": "I11",
      "status": "awaiting",
      "current_patients_on_board": 0
    },
    "helicopter2": {
      "current_grid_location": "O19",
      "allocated_request": "request2",
      "target_grid_location": "K17",
      "status": "responding",
      "current_patients_on_board": 3
    }
  },
  "help_requests": {
    "request1": {
      "desc": "car accident",
      "number_requiring_help": 3,
      "grid_location": "F10",
      "triage_rating": 3
    },
    "request2": {
      "desc": "brown snake bite",
      "patients_requiring_help": 1,
      "grid_location": "K17",
      "triage_rating": 1
    },
    "request3": {
      "desc": "fell off skateboard",
      "patients_requiring_help": 1,
      "grid_location": "B13",
      "triage_rating": 5
    }
  }
}

def regenerate_current_patient_numbers():
  import random
  global careflight
  for location in careflight["hospitals"]:
    temp_capacity = careflight["hospitals"][location]["capacity"]
    chance_of_full = 0.25 #25% hospital is full
    fill = random.randint(0, int(temp_capacity+(temp_capacity*chance_of_full)))
    if fill > temp_capacity:
      fill = temp_capacity
    careflight["hospitals"][location]["current"] = fill

regenerate_current_patient_numbers()

######## TO LOOKUP API: ########
#
#https://digisoln.com/careflight/hospitals/Rockhampton/
#OR:
print(careflight["hospitals"]["Rockhampton"])

#https://digisoln.com/careflight/helicopter_status/helicopter2/status/
#OR:
print(careflight["helicopter_status"]["helicopter2"]["status"])