anchor.diff:  				| {error, ErrorCode :: integer()}.
   %% @doc Body producing function for `GET /health/application'
   %% requests.
  -get_applications([] = _Query, _Headers) ->
  +get_applications([] = _Query, _RequestHeaders) ->
   	try
   		Check = application([ocs, inets, diameter, radius, snmp]),
   		{"checks", {struct, [Check]}}
   	of
  -		Checks ->
  -			Status = {"status", "pass"},
  -			ServiceId = {"serviceId", atom_to_list(node())},
  -			Description = {"description", "OTP applications"},
  -			Application = {struct, [Status, ServiceId, Description, Checks]},
  -			Body = mochijson:encode(Application),
  -			Headers1 = [{content_type, "application/health+json"}],
  -			{ok, Headers1, Body}
  +		{_, {_, [{"application", {_, Applications}}]}} = Checks ->
  +			F = fun({_, [_, _, {"status", "up"}]}) ->
  +						false;
  +					({_, [_, _, {"status", "down"}]}) ->
  +						true
  +			end,
  +			case lists:any(F, Applications) of
  +				false ->
  +					Status = {"status", "pass"},
  +					ServiceId = {"serviceId", atom_to_list(node())},
  +					Description = {"description", "OTP applications"},
  +					Application = {struct, [Status, ServiceId, Description, Checks]},
  +					ResponseBody = mochijson:encode(Application),
  +					ResponseHeaders = [{content_type, "application/health+json"}],
  +					{ok, ResponseHeaders, ResponseBody};
  +				true ->
  +					Status = {"status", "fail"},
  +					ServiceId = {"serviceId", atom_to_list(node())},
  +					Description = {"description", "OTP applications"},
  +					Application = {struct, [Status, ServiceId, Description, Checks]},
  +					ResponseBody = mochijson:encode(Application),
  +					ResponseHeaders = [{content_type, "application/health+json"}],
  +					{error, 503, ResponseHeaders, ResponseBody}
  +			end
   	catch
   		_:_Reason ->
   			{error, 500}
  
positive.code: 				| {error, ErrorCode :: integer()}.
  %% @doc Body producing function for `GET /health'
  %% requests.
  get_health([] = _Query, _Headers) ->
  	try
  		Check1 = scheduler(),
  		Check2 = application([ocs, inets, diameter, radius, snmp]),
  		Check3 = table_size([offer, product, service, resource, bucket]),
  		{"checks", {struct, [Check1, Check2, Check3]}}
  	of
  		Checks ->
  			Status = {"status", "pass"},
  			ServiceId = {"serviceId", atom_to_list(node())},
  			Description = {"description", "Health of SigScale OCS"},
  			Health = {struct, [Status, ServiceId, Description, Checks]},
  			Body = mochijson:encode(Health),
  			Headers1 = [{content_type, "application/health+json"}],
  			{ok, Headers1, Body}
  	catch
  		_:_Reason ->
  			{error, 500}
  	end.
  
  
negative.code: 			{"status", Status}]} | Acc],
  	application(T, Running, NewAcc);
  application([], _Running, Acc) ->
  	{"application", {array, lists:reverse(Acc)}}.
  
  -spec table_size(Names) -> Check
  	when
  