Rechercher

Article
· Jan 20 4m read

Usando o Postman para testar o OAuth2.0 do repositório InterSystems FHIR - Parte 1

Olá a todos, sou eu novamente para compartilhar o que ando estudando recentemente.😓

 

Recentemente, estou estudando como configurar a autenticação OAuth2 para o repositório InterSystems FHIR. E descobri que os seguintes artigos são muito bons e fáceis de seguir.😁

SMART on FHIR EHR Launch com IRIS for Health

Construindo um Repositório FHIR + Configuração de Servidor de Autorização OAuth2/Servidor de Recursos no IRIS for Health Parte 2

 

Para mim, como um usuário que não possui muito conhecimento sobre OAuth2.0, acho bastante difícil entender como configurar todo o ambiente OAuth2.0 antes de saber como ele se parece (o que é? quais são os parâmetros que preciso? qual é o resultado esperado?) de um ponto de vista puramente de usuário. 🤔 Aqui, tento inverter um pouco a sequência: vamos tentar falar sobre OAuth2.0 primeiro pelo lado do cliente. E, aqui, usaremos o Postman como cliente.😁

Se você quiser ter um ambiente de teste para OAuth, pode tentar os seguintes dockers:

workshop-iris-oauth2 ou o docker neste artigo Construindo um Repositório FHIR + Configuração de Servidor de Autorização OAuth2/Servidor de Recursos no IRIS for Health Parte 1

Neste artigo, configurei um repositório InterSystems FHIR com suporte a HTTPS em minha máquina local. (Baseado na minha observação, corrija-me se eu estiver errado, para fazer o OAuth da InterSystems funcionar, o servidor de recursos deve suportar HTTPS😑😐)

 


Então, vamos começar por algo simples. 😀

Caso 1: Autenticação Básica 

 As informações que precisamos são:

URL {hostname}/{path}/{Resources}?{parameters}
Body (opcional)
Username  
Password  

 

Embora testar no Postman seja simples, a aparência é a seguinte:

Em geral, a autenticação básica é simples, porque tudo o que você precisa é da URL dos recursos que deseja obter e fornecer a credencial correspondente. 1 passo e você obtém os dados que deseja.😁✌

 


Caso 2: Autenticação OAuth 

O conceito é um pouco diferente da autenticação básica. Pelo meu entendimento, a diferença chave é o conceito de sessão e token. Talvez, antes de mergulharmos de fato no OAuth2.0, vamos falar sobre algo com o qual estamos familiarizados.

Considere o seguinte cenário: você deseja visitar um Museu de Arte para um evento especial chamado "O Momento Milagroso". Como este evento é muito popular, o Museu decidiu configurar um controle de fluxo, dividindo o horário de abertura em 8 sessões, cada sessão com duração de 1 hora, e o visitante deve reservar sua própria sessão na Bilheteria antes da visita. Em outras palavras, o visitante deve apresentar um bilhete válido (token) no horário correto (sessão) ao Museu de Arte para o evento "O Momento Milagroso".

 

A partir do cenário acima, podemos resumir o seguinte: do ponto de vista de um cliente OAuth2.0, para acessar os recursos que queremos, precisamos:

Passo 1: obter um token do Servidor de Autenticação (Comprar um bilhete na Bilheteria)

Passo 2: apresentar o token ao Servidor de Recursos (Apresentar o bilhete no Museu de Arte)

Para obter o token, você precisa informar ao Servidor de Autenticação:

1. Quem é você? (uma das formas mais simples é fornecer o client_id e o client_secret; claro que existem outras formas, mas quero manter a simplicidade aqui😁)

2. Qual é o Servidor de Recursos que você deseja acessar? (Qual museu? Qual local?), você pode fornecer isso no parâmetro audience.

3. Qual é o escopo (scope) do seu acesso? (Qual programa? Qual evento?), você pode fornecer isso no Scope, e este escopo deve ser definido entre o Servidor de Autenticação e o Servidor de Recursos.

 

Então... agora ... é hora de agir como um cliente

com as informações abaixo, e obter o token pelo Postman:

Auth Type OAuth2.0
Grant type Client Credentials
Access Token URL

https://{authentication server hostname}/oauth2/token?aud={resource server hostname}/path

Por exemplo,

https://authenticationserver.com/oauth2/token?aud=https://resourceserver...

Scope user/.read user/.write
Client Authentication Enviar como cabeçalho Basic Auth 

Após a conclusão da autenticação, clique em "use token"

 

Uhuuu!! agora temos um token válido aqui,😁😂 e ele expirará dentro de uma hora 😶🤐

 

Agora use o token para obter o recurso que desejamos

 

Agora tente obter o Recurso Patient (Paciente)

URL {resource server hostname}/{path}/Patient
Method GET
Token aquele que obtivemos no Passo 1

 

 

 

Uhuuu!! parece bom.😁

Obrigado pela leitura.

Discussion (0)1
Log in or sign up to continue
Announcement
· Jan 20

InterSystems Open Exchange Annual Recap 2025

Hello and welcome to InterSystems Open Exchange Annual Recap 2025.
General Stats:
174 new apps in 2025
6,717 downloads in 2025
1,101 applications all time
44,992 downloads all time
3,484 developers joined

Top applications of the year
This rating includes only applications that have been published this year. The popularity of applications depends on various metrics such as views, bookmarks, ZPM installation rate, releases, reviews, and clicks on the Download button on the app page.
Top applications of all time
This rating includes applications that have been published since Open Exchange went online. The popularity of applications depends on various metrics such as views, bookmarks, ZPM installation rate, releases, reviews, and clicks on the Download button on the app page.
Top developers of all time
 

A developer's rating is affected by factors such as publishing apps, entering contests, writing reviews, and releasing updates.

If you want to see the top developers based just on the number of apps they've published, you can find them here.
2025 at a GlanceInterSystems Open Exchange
Discussion (0)1
Log in or sign up to continue
Digest
· Jan 20

InterSystems Open Exchange Annual Newsletter 2025

Hello and welcome to the InterSystems Open Exchange Annual Newsletter 2025.
General Stats:
174 new apps in 2025
6,717 downloads in 2025
1,101 applications all time
44,992 downloads all time
3,484 developers joined

Top applications of the year
This rating includes only applications that have been published this year. The popularity of applications depends on various metrics such as views, bookmarks, ZPM installation rate, releases, reviews, and clicks on the Download button on the app page.
Top applications of all time
This rating includes applications that have been published since Open Exchange went online. The popularity of applications depends on various metrics such as views, bookmarks, ZPM installation rate, releases, reviews, and clicks on the Download button on the app page.
Top developers of all time
 

A developer's rating is affected by factors such as publishing apps, entering contests, writing reviews, and releasing updates.

If you want to see the top developers based just on the number of apps they've published, you can find them here.
2025 at a GlanceInterSystems Open Exchange
Article
· Jan 20 4m read

Capturing and Sharing Patient-Level Measure Reports via FHIR Using Da Vinci Risk Adjustment with HealthShare

Overview

Organizations that need to capture, store, and share patient-level quality or risk adjustment measure results via FHIR can do so by extending HealthShare SDA and enabling transformation to the FHIR MeasureReport resource.

This article describes how to configure HealthShare to support the Da Vinci Risk Adjustment (RA) Implementation Guide by enabling storage and FHIR-based exchange of MeasureReport resources for individual patients or members.

The outcome of this configuration is the ability to persist MeasureReport data in SDA and expose it via FHIR R4 in compliance with the Da Vinci RA profile.

 

Solution Summary

This solution introduces a custom SDA3 container to store MeasureReport data for each patient and configures HealthShare to transform that data into a FHIR R4 MeasureReport resource.

The deliverables include:

  • A custom SDA container and related supporting classes
  • A custom DTL to transform SDA to FHIR
  • Configuration updates to register and enable the transformation
  • A test patient to validate end-to-end functionality

Once completed, HealthShare will:

  • Store MeasureReport data per patient in SDA
  • Automatically use the custom container
  • Expose the MeasureReport through the FHIR R4 endpoint in ODS

Implementation Steps

1. Download, Import and Compile Custom Code

Download MeasureReportCode.xml from GitHubhttps://github.com/smckennaisc/hs-measurereports-example/

Import and compile the contents of MeasureReportCode.xml into HSCUSTOM namespace in the following HealthShare environments:

  • Registry
  • Edge Gateway
  • ODS/FHIR Gateway
  • Clinical Viewer

Note: Applies to HealthShare v2025.1

Included Components in file

i. Custom SDA Container

  • HS.Local.SDA3.ZContainer.cls

ii. Custom SDA3 MeasureReport Classes

  • HS.Local.SDA3.ZMeasureReport.cls
  • HS.Local.SDA3.ZMeasureReportGroup.cls
  • HS.Local.SDA3.ZMeasureReportExtension.cls
  • HS.Local.SDA3.Streamlet.ZMeasureReport.cls
  • HS.Local.SDA3.CodeTableDetail.ZMeasureReportCategory.cls
  • HS.Local.SDA3.CodeTableDetail.ZGroupCode.cls
  • HS.Local.SDA3.CodeTableDetail.ZccRemark.cls

iii. Custom DTL

  • HS.Local.FHIR.DTL.SDA3.vR4.MeasureReport.MeasureReport

2. Register the Custom SDA Container

 

In HSREGISTRY, add the following Configuration Registry entry:

\CustomSDA3Container = HS.Local.SDA3.ZContainer

This ensures that HealthShare uses the custom SDA container when processing SDA3 data.


3. Enable the SDA-to-FHIR Transformation

 

In HSODS, update the following global:

set ^HS.XF.Transform("SDA3","vR4", "HS.Local.SDA3.ZMeasureReport", "HS.Local.FHIR.DTL.SDA3.vR4.MeasureReport.MeasureReport") = 1 

This explicitly enables the transformation from the custom SDA3 MeasureReport container to the FHIR R4 MeasureReport resource.


4. Update XFTransform.xml

 

Locate XFTransform.xml in the instance directory:

/dev/fhir/gbl/
  • You may need to temporarily set the file to read/write.

Add the following XML node after the SDA4 and vR4 nodes and before HS.SDA3.Address (typically around line 7):

<Node> <Sub>HS.Local.SDA3.ZMeasureReport</Sub> <Node> <Sub>HS.Local.FHIR.DTL.SDA3.vR4.MeasureReport.MeasureReport</Sub> <Data>1</Data> </Node> </Node>

This step ensures the transformation is recognized during runtime.


Testing and Validation

 

Download and Load Test SDA Data


Validate via FHIR API

Using Postman or another API testing tool, issue the following requests:

Query by Patient and Profile

https://<your-host>/csp/healthshare/hsods/fhir/r4/MeasureReport ?patient=100000012 &_profile=http://hl7.org/fhir/us/davinci-ra/StructureDefinition/ra-measurereport 
  • Replace <your-host> with your HealthShare URL
  • Replace 100000012 with the patient’s MPIID

Query All MeasureReports

https://<your-host>/csp/healthshare/hsods/fhir/r4/MeasureReport 

Expected Result:

  • A single MeasureReport resource should be returned

Validate in Clinical Viewer (CV)

 

  • Look up the patient “Test MeasureReport” in HealthShare's Clinical Viewer
  • Confirm the SDA record includes the custom MeasureReport container

Outcome

After completing these steps, your HealthShare environment will be capable of:

  • Persisting patient-level MeasureReport data in SDA
  • Transforming SDA data into a FHIR R4 MeasureReport resource
  • Sharing MeasureReport resources via FHIR in alignment with the Da Vinci Risk Adjustment Implementation Guide

This enables standards-based risk adjustment reporting and interoperability with downstream analytics, payers, and regulatory systems

 

Note: This article was edited using ChatGPT for grammar and readability.

Discussion (0)1
Log in or sign up to continue
Question
· Jan 20

Flight Refund & Cancellation Rules

Flight refund and cancellation rules depend on the airline, fare type, and when you cancel. Refundable tickets allow partial or full refunds, while non-refundable tickets usually have high penalties or no refund. Cancelling earlier costs less, and refunds can take several days or weeks to process.

Refunds and cancellations are one of the most stressful parts of booking flights. Many travelers only learn the rules after something goes wrong. Plans change, emergencies come up, or schedules shift. Suddenly, a cheap ticket becomes an expensive mistake. The problem isn’t that airlines hide information. The real issue is that refund and cancellation rules are written in complicated language that most people skip or don’t fully understand.

This guide explains refund and cancellation rules simply, especially for travelers booking international flights from Pakistan. No legal wording. No airline jargon. Just clear explanations so you know exactly what happens when you cancel a flight, miss a flight, or request a refund. If you understand these rules before booking, you can save money, avoid panic, and make smarter travel decisions.

The Most Important Rule About Flight Tickets

 

Not all flight tickets are refundable.

This single fact explains most refund problems.

Airline tickets are priced based on flexibility:

  • More flexibility = higher price
  • Less flexibility = cheaper price

When travelers choose the cheapest fare, they usually give up refund rights without realizing it.

Refundable vs Non-Refundable Tickets

Refundable Tickets

Higher cost, lower risk.

Refundable tickets:

  • Allow cancellation with minimal penalties
  • May offer full or partial refunds
  • Are common in flexible, premium, or business fares

These tickets are best if:

  • Your plans are uncertain
  • You may need to cancel or reschedule
  • You are traveling for work or emergencies

They cost more upfront but protect you from bigger losses later.

Non-Refundable Tickets

Cheaper, but strict rules apply.

Non-refundable tickets:

  • Usually do not return the ticket price
  • May only refund airport taxes
  • Often allow date changes with heavy fees

Most economy and promotional fares fall into this category. They are fine if your travel plans are 100% confirmed.

How Airline Cancellation Charges Actually Work

The closer you cancel to departure, the more you lose.

Airlines apply cancellation penalties based on:

  • Fare type
  • Time of cancellation
  • Airline policy

General Cancellation Timeline

While rules vary, this pattern is common:

  • More than 72 hours before departure: Lower cancellation charges
  • 24–72 hours before departure: Higher penalties
  • Less than 24 hours or after departure: Usually no refund

Some tickets become completely non-refundable once check-in opens.

International Flight Cancellations: What Makes Them Different

International flights have stricter rules and higher penalties.

International tickets involve:

  • Higher base fares
  • Multiple airports and countries
  • Additional taxes and fees

Airlines like Emirates, Qatar Airways, and Turkish Airlines all apply different rules based on fare type.

Some international fares:

  • Allow no cancellation at all
  • Allow cancellation but with large deductions
  • Allow date changes but charge fare differences

Always read international fare rules carefully.

How Long Do Flight Refunds Take?

Refunds are never instant.

Refund timelines depend on:

  • Airline processing time
  • Payment method
  • Bank processing speed

Typical Refund Timelines

  • Credit or debit card: 7–14 working days
  • Bank transfer: 10–21 working days

Delays can happen due to:

  • Airline approval queues
  • Weekends and public holidays
  • Banking system delays

Refunds often feel slow, but this is normal.

Are Airport Taxes Refundable?

Yes, in many cases.

Even if your ticket is non-refundable:

  • Airport taxes may be refundable
  • Fuel surcharges may not be refundable
  • Service fees are usually deducted

Tax refunds are often small, but they are still worth requesting.

Date Change vs Cancellation: Which Is Smarter?

Date changes are usually cheaper than cancellations.

Date Change

  • Lower penalty than cancellation
  • Fare difference may apply
  • Keeps ticket value usable

Cancellation

  • Higher penalties
  • Partial or zero refund
  • Longer processing time

If your travel is delayed, changing the date is usually the better option.

What Happens If the Airline Cancels Your Flight?

Airline-initiated cancellations usually protect the passenger.

If the airline cancels your flight due to:

  • Operational issues
  • Schedule changes
  • Weather disruptions

You are usually entitled to:

  • Full refund
  • Free rebooking
  • Travel credit

Always ask for your options before accepting anything.

What Is a No-Show and Why It Matters

Missing your flight can cancel your entire ticket.

If you don’t show up:

  • You may lose the full ticket value
  • Return or onward flights may be canceled
  • Refund is usually not allowed

If you know you won’t travel, cancel in advance. Even a late cancellation is better than a no-show.

Why Cheap Tickets Have Strict Refund Rules

Cheap tickets help airlines manage demand.

Airlines use cheap fares to:

  • Fill seats early
  • Attract price-sensitive travelers
  • Reduce risk of empty seats

In exchange, they limit refunds and flexibility. This trade-off is intentional, not unfair.

Common Refund & Cancellation Mistakes Travelers Make  

 

Most losses are avoidable.

Avoid these mistakes:

  • Assuming all tickets are refundable
  • Skipping fare rules during booking
  • Waiting too long to cancel
  • Missing check-in deadlines
  • Not saving booking confirmation

One small oversight can cost a lot.

How to Check Refund & Cancellation Rules Before Booking

Always read fare conditions before paying.

Before confirming your booking, check:

  • Refund eligibility
  • Cancellation penalty
  • Date change fees
  • No-show policy

Trusted booking platforms show these details clearly before payment.

Travel Insurance: Does It Help?

Sometimes, but not always.

Travel insurance may help if:

  • You cancel due to medical emergencies
  • Flights are canceled due to covered reasons

Insurance usually does not cover:

  • Change of mind
  • Personal schedule issues
  • Cheap promotional fares

Read insurance terms carefully.

How to Book Smartly If Plans Are Uncertain

Flexibility matters more than price.

If your plans may change:

  • Choose flexible fares
  • Avoid ultra-cheap deals
  • Cancel early if needed
  • Keep all booking records

Paying slightly more upfront can save much more later.

Where to Compare Flights With Clear Fare Rules

Understanding refund rules is easier when booking through transparent platforms.

You can compare flights and review fare conditions here:

This helps travelers:

  • Compare flexibility across airlines
  • See cancellation rules upfront
  • Avoid surprises later

FAQs: Refund & Cancellation Rules Explained Simply

Can I get a full refund on my flight ticket?

Only if your ticket is refundable or the airline cancels the flight.

Are non-refundable tickets completely useless?

No. Taxes may be refundable, and date changes may still be allowed.

How late can I cancel my flight?

This depends on the airline, but earlier is always cheaper.

What happens if I miss my flight?

You are marked as a no-show and usually lose refund rights.

Do airlines charge service fees?

Yes. Service and handling fees often apply.

Final Thoughts

Refund and cancellation rules don’t have to be confusing or scary. Once you understand how fare types, timelines, and penalties work, you can make informed decisions and avoid unnecessary losses.

Always read fare rules before booking, act early when plans change, and don’t assume flexibility unless it’s clearly stated.

Discussion (0)1
Log in or sign up to continue